
#pragma once
typedef unsigned int uint;

namespace GRIP
{
	namespace Cuda
	{
		private class InternalManager abstract sealed
		{
		public:
			static void Init();
			static void Cleanup();
			static int GetDevID();
			static HRESULT CreateSurface(uint uWidth, uint uHeight, bool fUseAlpha, uint m_uNumSamples, IDirect3DSurface9** Direct3DSurface);
		private:
			static int FindBestDevice();
			static inline int GetSMCoreCount(int major, int minor);
			static int devID;
			static HWND Window;
			static HRESULT CheckDeviceState();
			static IDirect3D9Ex* Direct3D;
			static IDirect3DDevice9Ex* Direct3DDevice;
		};
	}
}